#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stddef.h>
//struct Stu
//{
//	char name[20];
//	int age;
//	char gender[10];
//}s1,s2;
//int main()
//{
//	struct Stu s3 = { "Shi Mengmeng", 22, "girl" };
//	printf("%d\n", sizeof(s3));
//	printf("%s\n", s3.name);
//	return 0;
//}


//typedef struct S1
//{
//	char c1;
//	int i;
//	char c2;
//}S1;
//
//struct S2
//{
//	char c1;
//	char c2;
//	int i;
//};
//typedef struct S2 S2;
//struct S3
//{
//	double d;
//	char c;
//	int i;
//};
//#pragma pack(4)
//struct S4
//{
//	char c;
//	struct S3 s;
//	double d;
//};
//#pragma pack()
//int main()
//{
//	S1 s1 = { 0 };
//	S2 s2 = { 0 };
//	struct S3 s3;
//	struct S4 s4;
//
//	printf("%d\n", offsetof(S1, c1));
//	printf("%d\n", offsetof(S1, c2));
//	printf("%d\n", offsetof(S1, i));
//
//	printf("%d\n", sizeof(s1));
//	printf("%d\n", sizeof(s2));
//	printf("%d\n", sizeof(s3));
//	printf("%d\n", sizeof(s4));
//	return 0;
//}


struct S
{
	int data[1000];
	int num;
};

print1(struct S ss)
{
	int i = 0;
	for (i = 0; i < 3; i++)
	{
		printf("%d ", ss.data[i]);
	}
	printf("%d\n", ss.num);
}
print2(struct S* ps)
{
	int i = 0;
	for (i = 0; i < 3; i++)
	{
		printf("%d ", ps->data[i]);
	}
	printf("%d\n", ps->num);
}
int main()
{
	struct S s = { {1,2,3},100 };
	print1(s);
	print2(&s);
	return 0;
}